/**
 * Copyright (C) 2011 Vinicius Vielmo Cogo, Marcelo Pasin, and the authors
 * indicated in the @author tags.
 * 
 * This file is part of DiversityAgent.
 * 
 * DiversityAgent is a free software: you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by the
 * Free Software Foundation, either version 3 of the License, or (at your
 * option) any later version.
 * 
 * DiversityAgent is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with DiversityAgent. If not, see <http://www.gnu.org/licenses/>.
 */
package diversity_agent;

import java.util.ArrayList;
import java.util.Properties;

/**
 * This is the generic view of what means a Diversity an how it can contribute
 * to the diversity selection process.
 * 
 * @author Vinicius Vielmo Cogo (vielmo at lasige.di.fc.ul.pt)
 * @version 0.1-beta
 * @since 2011-11-18
 * 
 */
public abstract class Diversity
{
	protected DIVERSITY_AXIS	mDiversityAxis;
	protected ArrayList<String>	mDependencies;

	/**
	 * 
	 */
	public Diversity()
	{
		mDiversityAxis = null;
		mDependencies = new ArrayList<String>();
	}

	/**
	 * 
	 * @param theProperties
	 * @param theDataContainer
	 * @return
	 */
	public abstract Properties getContribution(Properties theProperties,
			DataContainer theDataContainer);
}
